#!/usr/bin/env bash
echo '==================1.开发环境准备================================'
echo '1.1请确保安装并java8, git, maven并设置好环境变量'
echo '1.2请确保安装并docker,docker-compose并设置好环境变量'

#确认环境信息准备就绪
read -r -p "开发环境准备好了吗? [Y/n] " envConfirm
case $envConfirm in
    [yY][eE][sS]|[yY])
		echo "Yes 继续执行"
		;;
    [nN][oO]|[nN])
		echo "No 终止执行"
		exit 1
       	;;
    *)
		echo "Invalid input... 终止执行"
		exit 1
		;;
esac

read -r -p "是否重新编译构建所有镜像? [Y/n] " envConfirm
case $envConfirm in
[yY][eE][sS]|[yY])
echo '==================2.安装认证公共包到本地maven仓库=================='
#安装认证公共包到本地maven仓库
cd common && mvn clean install
echo '当前目录:' && pwd

#回到根目录
cd -

echo '==================3.安装认证客户端到本地maven仓库=================='
#安装认证客户端到本地maven仓库
cd auth/authentication-client && mvn install
echo '当前目录:' && pwd

#回到根目录
cd -


echo '==================4.构建镜像: 消息中心========'

#构建镜像:消息中心
cd ./center/bus
mvn clean package && mvn docker:build

#回到根目录
cd -


echo '==================5.构建镜像:网关(gateway)相关服务==============='
#构建镜像:网关服务
cd ./gateway/gateway-web
mvn clean package && mvn docker:build

#回到根目录
cd -

#构建镜像:网关管理服务
cd ./gateway/gateway-admin
mvn clean package && mvn docker:build

cd -

echo '==================6.构建镜像:组织(organization)相关服务=================='
#构建镜像:组织服务
cd ./sysadmin/organization
mvn clean package && mvn docker:build



#回到根目录
cd -


echo '==================7.构建镜像:认证(auth)相关服务=================='
#构建镜像:认证服务
cd ./auth/authentication-server
mvn clean package && mvn docker:build

#回到根目录
cd -

#构建镜像:授权服务
cd ./auth/authorization-server
mvn clean package && mvn docker:build

#回到根目录
cd -


echo '==================8.构建镜像并启动监控(monitor)相关服务==============='
#构建镜像:管理台服务
cd ./monitor/admin
mvn clean package && mvn docker:build

#回到根目录
cd -
;;
esac
#去docker-compose目录


cd docker-compose

cat .env
echo '==================9.卸载所有服务==============='
docker-compose -f docker-compose.all.yml down
echo "清理data目录容器映射出来的数据"
sudo rm -rf ../data/*

echo '==================10.启动所有服务==============='

docker-compose -f docker-compose.all.yml up  -d

#回到根目录
cd -
